/**
 *系统平台
 * moonvip_admin
 * com.tz.service.good
 * IGoodService.java
 * 创建人:小胡 
 * 时间：2016年12月06日 23:43:44
 *
 */
package com.tz.service.good;

import com.tz.bean.Good;
import com.tz.bean.GoodChild;
import com.tz.bean.GoodPicture;
import com.tz.bean.TzParams;
import com.tz.commonModel.GoodChildModel;
import org.apache.ibatis.annotations.Param;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;

/**
 * 
 * IGoodService
 * 创建人:小胡 
 * 时间：2016年12月06日 23:43:44
 * @version 1.0.0
 * 
 */
public interface IGoodService {


	/**
	 * 
	 * com.tz.service.good 
	 * 方法名：findGoods
	 * 创建人：小胡 
	 * 手机号码:15166195973
	 * 时间：2016年12月06日 23:43:44
	 * @param params
	 * @return 
	 * 返回类型：List<Good>
	 * @exception 
	 * @since  1.0.0
	 */
	public List<Good> findGoods(TzParams params);


	/**
	 * 求总数
	 * com.tz.service.good
	 * 方法名：count
	 * 创建人：小胡
	 * 手机号码:15074816437
	 * 时间：2016年12月06日 23:43:44
	 * @param params
	 * @return
	 * 返回类型：int
	 * @exception
	 * @since  1.0.0
	 */
	public int count(TzParams params);
	
	/**
	 * 
	 * com.tz.service.good 
	 * 方法名：findGoods
	 * 创建人：小胡 
	 * 手机号码:15166195973
	 * 时间：2016年12月06日 23:43:44
	 * @param params
	 * @return 
	 * 返回类型：List<Good>
	 * @exception 
	 * @since  1.0.0
	 */
	public HashMap<String ,Object> getGood(Integer id);
	
	/**
	 * 保存平台商品管理
	 * com.tz.service.good 
	 * 方法名：save
	 * 创建人：小胡 
	 * 手机号码:15166195973
	 * 时间：2016年12月06日 23:43:44 
	 * @param good
	 * @return 
	 * 返回类型：Good
	 * @exception 
	 * @since  1.0.0
	 */
	public int save(Good good);
	
	/**
	 * 更新平台商品管理
	 * com.tz.service.good 
	 * 方法名：update
	 * 创建人：小胡 
	 * 手机号码:15166195973
	 * 时间：2016年12月06日 23:43:44
	 * @param good
	 * @return 
	 * 返回类型：int
	 * @exception 
	 * @since  1.0.0
	 */
	public int update(Good good);
	
	/**
	 * 删除平台商品管理
	 * com.tz.service.good 
	 * 方法名：delete
	 * 创建人：小胡 
	 * 手机号码:15166195973
	 * 时间：2016年12月06日 23:43:44
	 * @param params
	 * @return 
	 * 返回类型：int
	 * @exception 
	 * @since  1.0.0
	 */
	public int delete(TzParams params);

	//保存商品的信息和子表
	public void saveGoodAndChild(Good good , Integer[] stocknumber ,String[] color ,String[] urlArr) throws IOException;

	//更新商品的信息和子表
	public void updateGoodAndChild(Good good ,GoodChildModel goodChildModel) throws IOException;

	/**
	 * 描述: 查询商品下已经绑定的所有分类
	 * 包名： com.tz.dao.role
	 * 类名：IRoleMapper
	 * 方法名: findPermissionByRoleId
	 * 参数类型: [roleId]
	 * 创建人：hufanglei
	 * 时间：2017/2/19   03:30
	 * qq：690328661
	 * @return java.lang.Integer[]
	 */
	public Integer[] findCatogoryByGoodId(Integer goodId);

	/**
	 * 发布商品
	 */
	public void saveGood(Good good, String[] detailimgurl, Integer[] catogoryId, String goodchild) throws IOException;

	/**
	 * 重新保存商品下面的所有分类
	 * @param goodId
	 * @param catogoriesStirng
	 */
	public String saveGoodAndCatogory(String goodId, String catogoriesStirng);

	public List<GoodPicture> getAllPictures(Integer goodId);

	/**
	 * 更新商品的详情轮播图
	 * @param delIds
	 * @param addImgs
	 * @return
	 */
	public String updateDetailImg(int[] delIds, String[] addImgs, Integer goodId) throws IOException;

	/**
	 * 更新商品的基本型
	 */
	int updateGood(Good good) throws IOException;

	/**
	 * 更新规格
	 * @param goodChild
	 * @return
	 */
	public int  updateSpec(GoodChild goodChild);

	public List<String> getColorByGoodId(Integer goodId);
	public List<String> getWeightByGoodId(Integer goodId);
	public List<String> getMaterialByGoodId(Integer goodId);
	public List<String> getMainstoreByGoodId(Integer goodId);
	public List<String> getHandSizeByGoodId(Integer goodId);
	public List<String> getNecklacelenByGoodId(Integer goodId);
	public List<String> getBraceletlenByGoodId(Integer goodId);
	public List<Double> getPriceByGoodId(Integer goodId);
	public List<Integer> getstockNumByGoodId(Integer goodId);

}
